package br.unisul.prolinear.dao;

import java.io.Serializable;
import java.util.List;

import br.unisul.prolinear.utils.FilterList;

public interface GenericDao<T> {
	
	public enum ExpressaoFiltro{equal,like,gt,lt,ge,le,ne};

	public Class<T> getObjectClass();

	public T save(T object);

	public void delete(T object);
	
	public void deleteItem(T object);

	public List<T> list();

	public List<T> listFiltered(FilterList filtros);

	public T getById(Serializable id);
	
	public T get(String campo,Object valor);

	public T getById(Long id, boolean lock);
	
	public List<T> consultaHQL(String consulta);


}
